﻿<html DIR="LTR" xmlns:tool="http://www.microsoft.com/tooltip" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8" />
    <META NAME="save" CONTENT="history" />
    <title>Entendendo diferenças de tipo de dados</title>
    
    <link rel="stylesheet" type="text/css" href="../local/Classic.css">
      
    </link>
    
    <script src="../local/script.js">
      
    </script><script src="../local/script_main.js">&amp;nbsp;</script>
  </head>
  <body>
    <!--Topic built:04/01/2010 05:03:30-->

    
    
    
    
    
    
    
    
    
    <div id="header">
      <table width="100%" id="topTable"><tr>
          <td align="left">
            <span id="headerBold">Entendendo diferenças de tipo de dados</span>
          </td>
          <td align="right">
            
          </td>
        </tr></table>
      
      
      
    </div>
    <div id="mainSection">
      
        
        
    <font color="DarkGray">
      
    </font>
    <p />
    
    <p />
  
        <div id="introductionSection" class="section">
    <p>Há várias diferenças entre os tipos de dados da linguagem de programação Java e os tipos de dados do SQL Server. O Microsoft SQL Server JDBC Driver ajuda a facilitar essas diferenças através de vários tipos de conversões. </p>
  </div><h1 class="heading">Tipos de caractere</h1><div id="sectionSection0" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Os tipos de dados de cadeia de caracteres do JDBC são <b>CHAR</b>, <b>VARCHAR</b> e <b>LONGVARCHAR</b>. A partir do Microsoft SQL Server JDBC Driver versão 2.0, o driver JDBC fornece suporte para a API do JDBC 4.0. No JDBC 4.0, os tipos de dados de cadeia de caracteres do JDBC podem ser também <b>NCHAR</b>, <b>NVARCHAR</b> e <b>LONGNVARCHAR</b>. Estes novos tipos de cadeia de caracteres mantêm tipos de caracteres nativos de Java em formato Unicode e remove a necessidade de executar alguma conversão ANSI-para-Unicode ou Unicode-para-ANSI.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th colspan="">
              Tipo
            </th>
            <th colspan="">
              Descrição
            </th>
          </tr><tr>
          <td colspan="">
            <p>Comprimento fixo</p>
          </td>
          <td colspan="">
            <p>Os tipos de dados <b>char</b> e <b>nchar</b> do SQL Server mapeiam diretamente para os tipos <b>CHAR</b> e <b>NCHAR</b> do JDBC. Estes são tipos de comprimentos fixos com preenchimento fornecidos pelo servidor no caso em que a coluna possui SET ANSI_PADDING ON. O preenchimento é sempre ligado para <b>nchar</b>, mas para <b>char</b>, no caso em que as colunas de char de servidor não são preenchidas, o driver JDBC adiciona o preenchimento.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>Comprimento variável</p>
          </td>
          <td colspan="">
            <p>Os tipos <b>varchar</b> e <b>nvarchar</b> do SQL Server mapeiam diretamente para os tipos <b>VARCHAR</b> e <b>NVARCHAR</b> do JDBC, respectivamente.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>Long</p>
          </td>
          <td colspan="">
            <p>Os tipos SQL Server <b>text</b> e <b>ntext</b> são mapeados para o <b>LONGVARCHAR</b> e <b>LONGNVARCHAR</b> do JDBC, respectivamente. São tipos que foram substituídos desde o SQL Server 2005, de modo que no lugar você deve usar tipos de valores grandes, <b>varchar(max)</b> ou <b>nvarchar(max)</b>.</p>
            <p>Usar os métodos <b>update&lt;Numeric Type&gt;</b> e <a href="4993dfe1-2232-4b3c-b931-dfdb35dd225a.htm">updateObject (int, java.lang.Object)</a> não funcionará em colunas de servidor de <b>text</b> e <b>ntext</b>. Porém, usar o método <a href="93a2b22c-82b4-48c7-a428-369ebe98a372.htm">setObject</a> com um tipo de conversão de caractere especificado tem suporte para colunas de servidor de <b>text</b> e <b>ntext</b>.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Tipos de cadeia de caracteres binária</h1><div id="sectionSection1" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Os tipos de cadeia de caracteres binários do JDBC são <b>BINARY</b>, <b>VARBINARY</b> e <b>LONGVARBINARY</b>. </p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th colspan="">
              Tipo
            </th>
            <th colspan="">
              Descrição
            </th>
          </tr><tr>
          <td colspan="">
            <p>Comprimento fixo</p>
          </td>
          <td colspan="">
            <p>O tipo de dados <b>binary</b> do SQL Server mapeia diretamente para o tipo <b>BINARY</b> do JDBC. Esse é um tipo de comprimento fixo com preenchimento fornecido pelo servidor no caso em que a coluna possui SET ANSI_PADDING ON. Quando as colunas de char de servidor não são preenchidas, o driver JDBC adiciona o preenchimento.</p>
            <p>O tipo <b>timestamp</b> do SQL Server é um tipo <b>BINARY</b> do JDBC com o comprimento fixo de 8 bytes.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>Comprimento variável</p>
          </td>
          <td colspan="">
            <p>O tipo de dados <b>varbinary</b> do SQL Server mapeia para o tipo <b>VARBINARY</b> do JDBC.</p>
            <p>O tipo <b>udt</b> no SQL Server é mapeado para o JDBC como um tipo <b>VARBINARY</b>.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>Long</p>
          </td>
          <td colspan="">
            <p>O tipo <b>image</b> do SQL Server é mapeado para o tipo <b>LONGVARBINARY</b> do JDBC. Esse tipo foi substituído desde o SQL Server 2005, de modo que no lugar você deve usar um tipo de valor grande, <b>varbinary(max)</b>.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Tipos numéricos exatos</h1><div id="sectionSection2" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Os tipos numéricos exatos do JDBC mapeiam diretamente para os tipos do SQL Server correspondentes.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th colspan="">
              Tipo
            </th>
            <th colspan="">
              Descrição
            </th>
          </tr><tr>
          <td colspan="">
            <p>BIT</p>
          </td>
          <td colspan="">
            <p>O tipo <b>BIT</b> do JDBC representa um único bit que pode ser 0 ou 1. Ele mapeia para um tipo <b>bit</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>TINYINT</p>
          </td>
          <td colspan="">
            <p>O tipo <b>TINYINT</b> do JDBC representa um único byte. Ele mapeia para um tipo <b>tinyint</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>SMALLINT</p>
          </td>
          <td colspan="">
            <p>O tipo <b>SMALLINT</b> do JDBC representa um inteiro de 16 bits com sinal. Ele mapeia para um tipo <b>smallint</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>INTEGER</p>
          </td>
          <td colspan="">
            <p>O tipo <b>INTEGER</b> do JDBC representa um inteiro de 32 bits com sinal. Ele mapeia para um tipo <b>int</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>BIGINT</p>
          </td>
          <td colspan="">
            <p>O tipo <b>BIGINT</b> do JDBC representa um inteiro de 64 bits com sinal. Ele mapeia para um tipo <b>bigint</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>NUMERIC</p>
          </td>
          <td colspan="">
            <p>O tipo <b>NUMERIC</b> do JDBC representa um valor decimal de precisão fixa que contém valores de precisão idêntica. O tipo <b>NUMERIC</b> mapeia para o tipo <b>numeric</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>DECIMAL</p>
          </td>
          <td colspan="">
            <p>O tipo <b>DECIMAL</b> do JDBC representa um valor decimal de precisão fixa que contém valores da precisão especificada pelo menos. O tipo <b>DECIMAL</b> mapeia para o tipo <b>decimal</b> do SQL Server.</p>
            <p>O tipo <b>DECIMAL</b> do JDBC também mapeia para os tipos <b>money</b> e <b>smallmoney</b> do SQL Server, que são tipos decimais de precisão fixa específicos e que são armazenados em 8 ou 4 bytes, respectivamente.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Tipos numéricos aproximados</h1><div id="sectionSection3" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Os tipos numéricos aproximados do JDBC são <b>REAL</b>, <b>DOUBLE</b> e <b>FLOAT</b>.</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th colspan="">
              Tipo
            </th>
            <th colspan="">
              Descrição
            </th>
          </tr><tr>
          <td colspan="">
            <p>REAL</p>
          </td>
          <td colspan="">
            <p>O tipo <b>REAL</b> do JDBC tem sete dígitos de precisão (precisão única) e mapeia diretamente para o tipo <b>real</b> do SQL Server.</p>
          </td>
        </tr><tr>
          <td colspan="">
            <p>DOUBLE</p>
          </td>
          <td colspan="">
            <p>O tipo <b>DOUBLE</b> do JDBC tem 15 dígitos de precisão (precisão dupla) e mapeia diretamente para o tipo <b>float</b> do SQL Server. O tipo <b>FLOAT</b> do JDBC é um sinônimo do <b>DOUBLE</b>. Como pode haver confusão entre <b>FLOAT</b> e <b>DOUBLE</b>, o <b>DOUBLE</b> é preferido.</p>
          </td>
        </tr></table>
    </content></div><h1 class="heading">Tipos de Data e Hora</h1><div id="sectionSection4" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">O tipo <b>TIMESTAMP</b> do JDBC mapeia para os tipos <b>datetime</b> e <b>smalldatetime</b> do SQL Server. O tipo <b>datetime</b> é armazenado em dois inteiros de 4 bytes. O tipo <b>smalldatetime</b> contém as mesmas informações (data e hora), mas com menos exatidão, em dois inteiros pequenos de 2 bytes.</p>
      <div style="margin: .5em 1.5em .5em 1.5em" xmlns=""><b>Observação: </b>
        O tipo <b>timestamp</b> do SQL Server é um tipo de cadeia de caracteres binária de comprimento fixo. Ele não mapeia para nenhum dos tipos de hora de JDBC: <b>DATE</b>, <b>TIME</b> ou <b>TIMESTAMP</b>.<p />
      </div>
    </content></div><h1 class="heading">Mapeamento de tipo personalizado</h1><div id="sectionSection5" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">O recurso de mapeamento de tipo personalizado do JDBC que usa as interfaces do <b>SQLData</b> para os tipos avançados do JDBC (UDTs, Struct, e assim por diante). não é implementado no driver JDBC.</p>
    </content></div><span id="seeAlsoSpan"><h1 class="heading">Consulte também</h1></span><div id="seeAlsoSection" class="section" name="collapseableSection"><a href="7802328d-4d23-4775-9573-4169b127d258.htm">Entendendo os tipos de dados do JDBC Driver</a><br /><br /></div><!--[if gte IE 5]>
			<tool:tip element="seeAlsoToolTip" avoidmouse="false"/><tool:tip element="languageFilterToolTip" avoidmouse="false"/><tool:tip element="roleInfoSpan" avoidmouse="false"/>
		<![endif]-->
      <div id="footer" class="section">
        
		<hr />
		
		<span id="fb" class="feedbackcss">
			
			
		</span>
		
		<a href="9bad553b-9e70-4696-8499-2e35f772a1e0.htm">
			
			© 2010 Microsoft Corporation. Todos os direitos reservados.
		</a>
 	
	
      </div>
    </div>
  </body>
</html>